#include "LayoutHelper.h"

using namespace WONAPI;

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
LayoutHelper::LayoutHelper(Container *theParent)
{
	mContainer = theParent;
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void LayoutHelper::Add()
{
	ChildLayoutInstruction *anInstr = new ChildLayoutInstruction;
	anInstr->mType				= mType;	
	anInstr->mTarget			= mTarget;
	anInstr->mReference			= mReference;
	anInstr->mHorzPosPad		= mHorzPosPad;
	anInstr->mVertPosPad		= mVertPosPad;
	anInstr->mHorzSizePad		= mHorzSizePad;
	anInstr->mVertSizePad		= mVertSizePad;
	mContainer->AddChildLayout(anInstr);
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void LayoutHelper::Add(Component *target, int theType, Component *ref, int horzPosPad, int vertPosPad, int horzSizePad, int vertSizePad)
{
	mType = theType;
	mTarget = target;
	mReference = ref;
	mHorzPosPad = horzPosPad;
	mVertPosPad = vertPosPad;
	mHorzSizePad = horzSizePad;
	mVertSizePad = vertSizePad;
	Add();
}


///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void LayoutHelper::Repeat(Component *target)
{
	mTarget = target;
	Add();
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void LayoutHelper::Repeat(Component *target, Component *ref)
{
	mTarget = target;
	mReference = ref;
	Add();
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void LayoutHelper::Repeat(Component *target, int horzPosPad, int vertPosPad, int horzSizePad, int vertSizePad)
{
	mTarget = target;
	mHorzPosPad = horzPosPad;
	mVertPosPad = vertPosPad;
	mHorzSizePad = horzSizePad;
	mVertSizePad = vertSizePad;
	Add();
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void LayoutHelper::FlowRepeat(Component *target)
{
	mReference = mTarget;
	Repeat(target);
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void LayoutHelper::FlowRepeat(Component *target, int horzPosPad, int vertPosPad, int horzSizePad, int vertSizePad)
{	
	mReference = mTarget;
	Repeat(target,horzPosPad,vertPosPad,horzSizePad,vertSizePad);
}
